package com.zgh.util;//package com.zgh.util;
//
//import java.math.BigInteger;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
//import javax.servlet.http.HttpServletRequest;
//
//import org.apache.commons.lang3.StringUtils;
//
//import com.alibaba.fastjson.JSONObject;
//import com.xxg.exception.BaseException;
//import com.xxg.util.Tools;
//import com.zgh.app.base.model.ResponseBean;
//import com.zgh.util.sm2.SM2Util;
//import com.zgh.util.sm4.SM4Util;
//
//public class AppUtil {
//
//    public static Map<Long,String> map=new HashMap<Long, String>();
//    static{
//        map.put(1L,"成功");
//        map.put(0L,"失败");
//        map.put(9999L,"appId无效");
//        map.put(9998L,"version无效");
//        map.put(9997L,"equipmentId为空");
//        map.put(9996L,"model为空");
//        map.put(9995L,"timestamp无效");
//        map.put(9994L,"数据无法解密");
//        map.put(9993L,"authToken无效");
//        map.put(9992L,"必填参数为空");
//        map.put(9991L,"参数检验不通过");
//        map.put(9990L,"其他错误，详见错误描述");
//    }
//    public static final long SUCCESS=1;
//    public static final long FAILE=0;
//    public static final long APP_ID_ERROR=9999;
//    public static final long VERSION_ERROR=9998;
//    public static final long EQUIPMENT_ID_ERROR=9997;
//    public static final long MODEL_ERROR=9996;
//    public static final long TIMESTAMP_ERROR=9995;
//    public static final long DECRYPT_ERROR=9994;
//    public static final long AUTH_TOKEN_ERROR=9993;
//    public static final long NULL_ERROR=9992;
//    public static final long PARAM_ERROR=9991;
//    public static final long OTHER_ERROR=9990;
//
//    private static final BigInteger PRIVATE_KEY=new BigInteger("31599176275242618602105575172938956710088549974728418855197810901641005601285");
//    private static final String PUBLIC_KEY="A7FU2fc64nH6taBTeIqvVtYufagd+qhVZW61kQZbGfly";
//    private static final SM2Util SM2=new SM2Util();
//
//
//    public static long checkHead(HttpServletRequest request){
//        String appId=request.getHeader("appId");
//        String version=request.getHeader("version");
//        String equipmentId=request.getHeader("equipmentId");
//        String model=request.getHeader("model");
//        String timestamp=request.getHeader("timestamp");
//
//        if(!"xmzgh".equals(appId)){
//            return  APP_ID_ERROR;
//        }
//        if(StringUtils.isBlank(timestamp)){
//            return TIMESTAMP_ERROR;
//        }
//        return SUCCESS;
//    }
//
//
//    public static String getRequestParam(HttpServletRequest request) throws Exception{
//        String requestParam=request.getParameter("requestParam");
//        String pwdKey=request.getParameter("pwdKey");
//        if(StringUtils.isBlank(pwdKey)){
//            return SM2.decrypt(requestParam, PRIVATE_KEY);
//        }
//        pwdKey=SM2.decrypt(pwdKey, PRIVATE_KEY);
//        return SM4Util.decryptEcb(pwdKey, requestParam);
//    }
//
//    public static String getPwdKey(HttpServletRequest request){
//        String pwdKey=request.getParameter("pwdKey");
//        if(StringUtils.isBlank(pwdKey)){
//            return null;
//        }
//        return SM2.decrypt(pwdKey, PRIVATE_KEY);
//    }
//
//    public static String getDefaultPwdKey(){
//        StringBuffer sb = new StringBuffer();
//        for (int i = 0; i < PUBLIC_KEY.length(); i++) {
//            char c = PUBLIC_KEY.charAt(i);
//            sb.append(Integer.toHexString(c));
//            if(sb.length()==32){
//                break;
//            }
//        }
//        while(sb.length()<32){
//            sb.append("A");
//        }
//        return sb.toString().substring(0,32);
//
//    }
//
//
//    public  static String getRandomPwdKey(){
//        String str=Tools.getUUID();
//        StringBuffer sb = new StringBuffer();
//        for (int i = 0; i < str.length(); i++) {
//            char c = str.charAt(i);
//            sb.append(Integer.toHexString(c));
//            if(sb.length()==32){
//                break;
//            }
//        }
//        while(sb.length()<32){
//            sb.append("A");
//        }
//        return sb.toString().substring(0,32);
//    }
//
//    public static String getRetunrnStr(String str,String pwdKey){
//        if(StringUtils.isBlank(pwdKey)){
//            pwdKey=getDefaultPwdKey();
//        }
//        String responseResult="";
//        try {
//            responseResult = SM4Util.encryptEcb(pwdKey, str);
//        } catch (Exception e) {
//
//        }
//        return responseResult;
//    }
//
//    public static JSONObject getReturnJSON(Object obj,String pwdKey,long statusCode){
//        return getReturnJSON(obj, pwdKey, statusCode, map.get(statusCode));
//    }
//
//    public static JSONObject getReturnJSON(Object obj,String pwdKey,long statusCode,String resMessage){
//        JSONObject json=new JSONObject();
//        if(StringUtils.isBlank(pwdKey)){
//            pwdKey=getDefaultPwdKey();
//        }
//        if(obj==null){
//            json.put("responseResult", null);
//        }else if(StringUtils.isBlank(obj.toString())){
//            json.put("responseResult", null);
//        }else if (obj instanceof ResponseBean){
//            ResponseBean re=(ResponseBean)obj;
//            resMessage=re.getMsg();
//            statusCode=re.getCode();
//            obj=re.getData();
//            if(obj==null || StringUtils.isBlank(obj.toString())){
//                json.put("responseResult", null);
//            }else if(obj instanceof String){
//                resMessage=(String)obj;
//                json.put("responseResult", null);
//            }else{
//                json.put("responseResult", obj);
//            }
//        }else if (obj instanceof BaseException){
//            BaseException be=(BaseException)obj;
//            if(String.valueOf(be.getCode()).startsWith("1")){
//                resMessage=be.getMessage();
//            }else{
//                resMessage="处理失败";
//            }
//            statusCode=OTHER_ERROR;
//            json.put("responseResult", null);
//        }else if(obj instanceof Exception){
//            resMessage= ((Exception)obj).getMessage();
//            statusCode=OTHER_ERROR;
//            obj=null;
//            json.put("responseResult", null);
//        }else{
//            json.put("responseResult",  obj);
//			/*暂时不加密String responseResult="{}";
//			try {
//				responseResult=SM4Util.encryptEcb(pwdKey, JSONObject.toJSONString(obj));
//			} catch (Exception e) {
//
//			}
//			json.put("responseResult", responseResult);
//			*/
//        }
//        json.put("statusCode", String.valueOf(statusCode));
//        json.put("resMessage", resMessage);
//        return json;
//    }
//
//    public static String getErrorMessage(long errorCode){
//        return map.get(errorCode);
//    }
//
//    public static void main(String[] args) throws Exception {
//
//        String s="40640fe0871d3a8726b07f0a18e8484fcff086d9ae5548bfd51e934fc25f146dd34885a58446ceb320148b4885eb68c96f58cfc75a0b2999679098e66a5ce750";
//        System.out.println(getDefaultPwdKey());
//        System.out.println(SM4Util.decryptEcb(getDefaultPwdKey(), s));
//
//        Date d=new Date();
//        JSONObject json=getReturnJSON(d, null, 11, "dff");
//        System.out.println(json);
//        System.out.println(json.getString("responseResult"));
//        System.out.println(SM4Util.decryptEcb(getDefaultPwdKey(),json.getString("responseResult")));
//
//    }
//
//}
